Printing systems transform a print job into a printed output by applying colorant(s) to mark a printable medium, such as paper. In order to represent colors specified in the print job, printing systems utilize different colorants that are applied to the medium in different ratios. For instance, a Cyan, Magenta, Yellow, Key black (CMYK) printing system utilizes 4 different colorants to represent the colors specified in the print job.
The colors specified in the print job are often defined in a different color space than the printing system. During the printing process, the printing system performs a color conversion from the input color space of the print job to the output color space of the printing system. This color conversion process may use interpolation to generate the color conversions on the fly. Interpolation is a process that constructs new data points within a range of a discrete set of known data points. For example, the printing system may interpolate the output color space values by constructing data points between two pre-defined color conversion values.
Since interpolation is computationally intensive, the results of the computations are often cached for reuse during processing of the print job. Also, the size of the cache is typically limited as compared to the number of possible color conversions that may be used for printing the print job. Thus, the cache may be re-initialized when space is exhausted in the cache to make room for the storage of subsequent color conversions.
Re-initializing the cache may result in a number of computational processes recurring each time the cache is re-initialized. For instance, the cache may be used to store specialized color conversions that are then added back to the cache each time the cache is re-initialized. This can result in additional processing at the printing system that demands computational and memory resources, both of which are limited.